<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Document</title>
</head>

<body>

  <script>
    // 创建 promise 对象
    const p = new Promise((resolve, reject) => {
      setTimeout(() => {
        resolve("用户数据");
        // reject("失败了");
      }, 1000)
    })

    // 调用 then 方法  then 方法的返回结果是 Promise 对象，对象状态由回调函数的执行结果决定
    // 1. 如果回调函数中返回的结果是 非Promise函类型的数据，状态为成功，返回值为对象的成功的值
    const result = p.then(value => {
      console.log(value)
      // 1. 非 Promise 类型的数据
      // return 123;
      // 2. 是 Promise 对象
      /* return new Promise((resolve, reject) => {
        resolve('Ok');
      }) */
      // 3. 抛出错误
      // throw new Error('出错了');
      throw '出错了'
    }, reason => {
      console.warn(reason);
    })

    // 链式调用
    p.then(value => {

    }).then(valie => {

    })

    console.log(result)
  </script>
</body>

</html>